//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 CameraPositionVS;
//   float3 DecalLocalNormal;
//   float3 DecalLocation;
//   float4x4 DecalMatrix;
//   float2 DecalOffset;
//   float4 FOGINSCAttering[4];
//   float4 FogMaxHeight;
//   sampler2D HeightmapTexture;
//   float4 HeightmapUVScaleBias;
//   float4 LightMapScale[2];
//   float4x4 LocalToWorld;
//   float4 LodBias;
//   float4 LodDistancesValues;
//   float4 LodValues;
//   float4 SharedFogParameter0;
//   float4 SharedFogParameter1;
//   float4 SharedFogParameter2;
//   float4 SharedFogParameter3;
//   float4 SubsectionSizeVertsLayerUVPan;
//   float3 TemporalAAParameters;
//   float4x4 ViewProjectionMatrix;
//   float3x3 WorldToLocalNoScaling;
//   float bUseExponentialHeightFog;
//
//
// Registers:
//
//   Name                          Reg   Size
//   ----------------------------- ----- ----
//   ViewProjectionMatrix          c0       4
//   CameraPositionVS              c4       1
//   LocalToWorld                  c6       4
//   DecalMatrix                   c10      4
//   FOGINSCAttering               c14      4
//   WorldToLocalNoScaling         c18      3
//   LightMapScale                 c21      2
//   TemporalAAParameters          c23      1
//   DecalLocation                 c24      1
//   DecalOffset                   c25      1
//   DecalLocalNormal              c26      1
//   HeightmapUVScaleBias          c27      1
//   LodBias                       c28      1
//   LodValues                     c29      1
//   LodDistancesValues            c30      1
//   SubsectionSizeVertsLayerUVPan c31      1
//   SharedFogParameter0           c32      1
//   SharedFogParameter1           c33      1
//   SharedFogParameter2           c34      1
//   SharedFogParameter3           c35      1
//   bUseExponentialHeightFog      c36      1
//   FogMaxHeight                  c37      1
//   HeightmapTexture              s0       1
//

    vs_3_0
  def c253, 0, 0, 0.0625, 1
    def c42, 1, -1, 0, 2
    def c44, 0.0078125, 0.00999999978, -0.00999999978, 0.00100000005
    def c43, 0.5, 65280, 255, -32768
    def c45, 0.499000013, 0.5, 0, 0
    def c38, 1, 0, 0, 0
    def c39, 0, 1, 0, 0
    def c40, 0, 0, 1, 0
    def c41, 0, 0, 0, 1
  dcl_2d s0
    dcl_position v0
    dcl_2d s0
    dcl_texcoord o0.xyz
    dcl_texcoord1 o1
    dcl_texcoord2 o2.xyz
    dcl_texcoord3 o3.xyz
    dcl_texcoord4 o4
    dcl_texcoord6 o5
    dcl_texcoord7 o6.xyz
    dcl_texcoord5 o7
    dcl_position o8
    mul r0, c29.wwyy, v0.xyxy
    mad r1, r0.yxxy, c42.xxyy, c42.zzxx
    add r2, r1, r1
    add r0.x, v0.y, v0.x
    slt r0.x, c29.z, r0.x
    slt r0.y, v0.x, v0.y
    mad r0.x, r0.x, c42.w, r0.y
    mad r1, r1, -c42.w, c42.x
    mul r1, r1, c30
    mad r1, r2, c29.x, r1
    mova a0.x, r0.x
    dp4 r0.x, r1, c38[a0.x]
    frc r0.y, r0.x
    add r0.x, -r0.y, r0.x
    mov r1, c38
    if_lt c29.x, r1.x
      add r2.x, r0.y, -c28.x
      add r2.y, r0.x, c38.x
      mul r2.x, r2.y, r2.x
      add_sat r2.x, r2.x, r2.x
    else
      add r0.y, r0.y, -c28.x
      mul_sat r2.x, r0.y, c28.y
    endif
    exp r0.y, -r0.x
    mad r3.xy, c31.x, r0.y, -r1.x
    add r0.y, -r0.x, -c38.x
    exp r0.y, r0.y
    mul r0.y, r0.y, c31.x
    max r0.y, r0.y, c42.w
    add r3.zw, r0.y, -c38.x
    mul r3, r3, c31.y
    mad r4, r0.zwzw, r3, c43.x
    frc r5, r4
    add r4, r4, -r5
    rcp r0.y, r3.y
    mul r3.xy, r0.y, r4
    mad r0.yz, r3.xxyw, c27.xxyw, c27.xzww
    mov r4.xy, c27
    mad r5.xy, r4, c43.x, r0.yzzw
    add r5.w, r0.x, -c28.z
    mov r5.z, c38.w
    texldl r0, r5, s0
    mul r0.xy, r0, c43.yzzw
    add r0.x, r0.y, r0.x
    add r0.x, r0.x, c43.w
    mul r3.z, r0.x, c44.x
    rcp r0.x, r3.w
    mul r0.xy, r0.x, r4.zwzw
    mad r2.yz, r0.xxyw, c27.xxyw, c27.xzww
    mad r6.xy, r4, c43.x, r2.yzzw
    add r6.zw, r5, c38.xyyx
    texldl r5, r6, s0
    mul r2.yz, r5.xxyw, c43
    add r0.w, r2.z, r2.y
    add r0.w, r0.w, c43.w
    mul r0.z, r0.w, c44.x
    lrp r5.xyz, r2.x, r0, r3
    mul r0, r5.y, c7
    mad r0, c6, r5.x, r0
    mad r0, c8, r5.z, r0
    add r0, r0, c9
    mul r2, r0.y, c1
    mad r2, c0, r0.x, r2
    mad r2, c2, r0.z, r2
    mad r2, c3, r0.w, r2
    mul r3.x, r2.w, c23.z
    mad r2.xy, r3.x, c23, r2
    mad r3.xy, r5, c27, c27.zwzw
    mad o0.xy, r4, c43.x, r3
    mad r1, c24.xyzx, r1.xxxw, r1.yyzx
    add r1, r0, -r1
    mul r3.xy, r1.y, c11
    mad r1.xy, c10, r1.x, r3
    mad r1.xy, c12, r1.z, r1
    mad r1.xy, c13, r1.w, r1
    add r1.xy, -r1, c25
    add o1.xy, r1, c43.x
    add r1.xyz, -r0, c24
    dp3 r0.w, r1, c26
    mov r1.xyz, c26
    mul r3, r1.y, c7
    mad r3, c6, r1.x, r3
    mad r1, c8, r1.z, r3
    dp4 r1.x, r1, r1
    rsq r1.x, r1.x
    mul o1.w, r0.w, r1.x
    mad r1.xyz, r0, -c4.w, c4
    mul r3.xyz, r1.y, c19
    mad r1.xyw, c18.xyzz, r1.x, r3.xyzz
    mad o5.xyz, c20, r1.z, r1.xyww
    abs r0.w, c36.x
    if_lt -r0.w, r0.w
      add r1.xyz, r0, -c4
      dp3 r0.w, r1, r1
      rsq r0.w, r0.w
      rcp r1.w, r0.w
      add r1.w, r1.w, -c32.w
      max r1.w, r1.w, c38.w
      mul r1.w, r1.w, c32.x
      slt r3.x, c44.y, r1_abs.z
      add r3.y, r1.z, c44.z
      mad r3.x, r3.x, r3.y, c44.y
      mul r3.y, r3.x, -c32.y
      exp r3.y, r3.y
      add r3.y, -r3.y, c38.x
      mul r3.x, r3.x, c32.y
      rcp r3.x, r3.x
      mul r3.x, r3.x, r3.y
      mul r1.w, r1.w, r3.x
      mul r1.xyz, r0.w, r1
      dp3 r0.w, c35, r1
      mad r0.w, r0.w, -c45.x, c45.y
      pow r1.x, r0.w, c32.z
      mov r3.xyz, c34
      add r3.xyz, -r3, c33
      mad r1.xyz, r1.x, r3, c34
      exp r0.w, -r1.w
      min r0.w, r0.w, c38.x
      max r0.w, r0.w, c33.w
      add r1.w, -r0.w, c38.x
      mul o4.xyz, r1.w, r1
      mov o4.w, r0.w
    else
      add r0.xyz, r0, -c4
      dp3 r0.x, r0, r0
      rsq r0.x, r0.x
      rcp r0.x, r0.x
      mov r1.z, c4.z
      add r3, -r1.z, c35
      sge r0.y, c44.w, r0_abs.z
      lrp r1.x, r0.y, c44.w, r0.z
      rcp r0.y, r1.x
      mul_sat r3, r0.y, r3
      add r1, -r1.z, c37
      mul_sat r1, r0.y, r1
      add r0, r0.x, -c34
      max r0, r0, c38.w
      add r1, -r3, r1
      mul r0, r0, r1_abs
      slt r1, r0, c33
      mul r0, r0, c32
      exp r3.x, r0.x
      exp r3.y, r0.y
      exp r3.z, r0.z
      exp r3.w, r0.w
      mul r0, r1, r3
      mad r1, r1, r3, -c38.x
      mul r3.xyz, r1.x, c14
      mov r3.w, r0.x
      mul r3, r0.y, r3
      mad r3.xyz, r1.y, c15, r3
      mul r3, r0.z, r3
      mad r3.xyz, r1.z, c16, r3
      mul r0, r0.w, r3
      mad o4.xyz, r1.w, c17, r0
      mov o4.w, r0.w
    endif
    mov o0.z, c38.w
    mov o1.z, c38.x
    mov o2.xyz, c21
    mov o3.xyz, c22
    mov o5.w, c38.x
    mov o6.xyz, c20
    mov r12, r2
    mov o8, r2
 texldl r11, c253.z, s0
 if_ne r12.w, c253.w
 add r11.y, r12.w, -r11.y
 mul r11.x, r11.x, r11.y
 add r12.x, r12.x, r11.x
 endif
 mov o7, r12

// approximately 174 instruction slots used (4 texture, 170 arithmetic)
 

